<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Vue中的数据代理</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <!-- 
				1.Vue中的数据代理：
							通过vm对象来代理data对象中属性的操作（读/写）
				2.Vue中数据代理的好处：
							更加方便的操作data中的数据
				3.基本原理：
							通过Object.defineProperty()把data对象中所有属性添加到vm上。
							为每一个添加到vm上的属性，都指定一个getter/setter。
							在getter/setter内部去操作（读/写）data中对应的属性。
		 -->
    <!-- 准备好一个容器-->
    <div id="root">
      <h2>学校名称：{{name}}</h2>
      <h2>学校地址：{{address}}</h2>
    </div>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false; //阻止 vue 在启动时生成生产提示。
    let data= {
        name: "尚硅谷",
        address: "宏福科技园",
      }

    // vm将这个data对象存储在了vm._data中 Vue({data})这里面的data是配置对象
    //  实际上vm._data(vm中实际存储的对象) = options.data(配置对象) = data(定义的数据)
    //  有了data配置项之后 底层会进行加工即增加get和set方法 然后vm_data=data 一旦数据进行了修改set就会进行调用，重新解析模板，生成新的虚拟dom
    // 新旧虚拟dom进行对比之后 更新页面
    const vm = new Vue({
      el: "#root",
      data:{
        name: "尚硅谷",
        address: "宏福科技园",
      }
    });
  </script>
</html>
